


/*class MyArray {

    public Object[] objects = new Object[10];


    //这里不判断pos位置是否合法，默认放到数组最后一个位置，
    public void setValue(int pos, Object value) {
        objects[pos] = value;
    }


    public Object getValue(int pos) {
        return objects[pos];
    }

}*/


/**
 * @param <T> 代表当前类 是一个泛型类，它只是一个占位符
 */
class MyArray<T> {

    //public T[] objects = new T[10];
    public T[] objects = (T[]) new Object[10];
    //public Object[] objects = new Object[10];


    //这里不判断pos位置是否合法，默认放到数组最后一个位置，
    public void setValue(int pos, T value) {
        objects[pos] = value;
    }

    public T getValue(int pos) {
        return (T) objects[pos];//把返回类型，强转为指定类型
    }
}


public class Test2 {

    //就是将类型 进行传递
    public static void main(String[] args) {
        MyArray<Integer> myArray = new MyArray<Integer>();
        myArray.setValue(0, 18);
        myArray.setValue(1, 100);

        int a = myArray.getValue(0);
        System.out.println(a);

        MyArray<String> myArray2 = new MyArray<>();
        myArray2.setValue(0, "abcd");
        myArray2.setValue(1, "efg");
        String ret = myArray2.getValue(1);
        System.out.println(ret);
    }


    public static void main1(String[] args) {
        MyArray myArray = new MyArray();
        myArray.setValue(0, 18);
        myArray.setValue(1, "hello");

        //int a = (Integer) myArray.getValue(0);
        int a = (int) myArray.getValue(0);
        System.out.println(a);

        String str = (String) myArray.getValue(1);
        System.out.println(str);


    }

}
